Skip to content

fix(catalog): auto-sync from tagged main heads + slug-scoped intents - #607

Merged
adampullely merged 1 commit into
mainfrom
fix/catalog-push-project-slug
Aug 2, 2026
Merged

fix(catalog): auto-sync from tagged main heads + slug-scoped intents#607
adampullely merged 1 commit into
mainfrom
fix/catalog-push-project-slug

Conversation

@adampullely

Copy link
Copy Markdown
Contributor

Why workspace Docs libraries stayed empty — two independent silent failures in catalog auto-sync:

  1. Tag-on-main disabled auto-sync forever. Scope precedence ranks tag > branch, and the gate accepted only branch-main — a release workflow that tags every main head (exactly what the baseline does) never published, silently. The gate now takes the WorkspaceState and accepts a CLEAN main head that is also tagged; every silent precondition return now reports why under ORUN_VERBOSE.
  2. Slug-scoped push 404'd. With project: <slug> declared in the intent (lumen#66), the object sync built …/projects/<slug>/state/objects/missingRoute not found, warn-only. Same fix as fix(run): remote-state scope resolves intent-declared project slugs #606: adopt the OIDC-bound prj_… in CI, resolve via the projects list elsewhere.

Plus: orun catalog push now resolves the backend URL from intent.yaml (was passing nil).

Verified live: with the patched binary, a headless orun plan on ambient auto-synced 248 objects, advanced the head, and after reprojection the org doc index returns the full doc set (repo + per-component overview/architecture/runbook). Tagged-main gate verified behaviorally on the lumen checkout.

🤖 Generated with Claude Code

…ped intents

Two silent ways the catalog (and its docs) never reached the platform:

- The auto-publish gate keyed on scope precedence, where tag outranks
  branch: a release workflow that tags every main head disabled
  auto-sync FOREVER, with no output (hit live — a repo's Docs library
  stayed empty because each merge commit was immediately tagged). The
  gate now takes the snapshot and accepts a clean main head that is also
  tagged; dirty/detached/PR states stay excluded. Every silent
  precondition return now says why under ORUN_VERBOSE.
- The push scope adopted the intent-declared project SLUG; state routes
  take prj_… ids, so the object sync 404'd ('Route not found:
  …/projects/<slug>/state/objects/missing', warn-only in autosync).
  Same resolution as run/#606: OIDC-bound id wins in CI, projects-list
  resolution elsewhere.

Also: `orun catalog push` resolves the backend URL from intent.yaml
(passed nil before — the explicit verb demanded --backend-url even
inside a configured repo).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@adampullely
adampullely merged commit d5ca481 into main Aug 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants